<?php
// PROPEL
require_once '/usr/share/php/propel/Propel.php';
Propel::init("propel/build/conf/cnam_ecommerce-conf.php");
set_include_path("propel/build/classes" . PATH_SEPARATOR . get_include_path());

// SMARTY
require_once('lib/smarty/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = 'lib/smarty/templates/';
$smarty->compile_dir = 'lib/smarty/templates_c/';
$smarty->config_dir = 'lib/smarty/configs/';
$smarty->cache_dir = 'lib/smarty/cache/';

// Ensemble de fonctions utiles
require('process/global.php');

// Initialisation de variables
$goto_homepage = false;
$page_title = "Bienvenue sur BooK Different";

// session
session_start();

// regénération de session (par sécurité)
if (!isset($_SESSION['initiated'])) {
    session_regenerate_id();
	$_SESSION['initiated'] = true;
}

// deconnexion si logout apparait comme parametre d'url
if(isset($_GET['logout'])) {
	session_destroy();
	header('location: index.php'); // redirection pour prendre en compte la suppression de la session
}

// si le user est connecté (cad que "id_user" existe dans la sssion), on place son id dans une variable (par soucis de simplicité)
// pour les users anonymes, on definit que id_user = 0
$id_user = 0;
if(isset($_SESSION['id_user'])) {
	$id_user = $_SESSION['id_user'];
}
$smarty->assign('id_user', $id_user);


// Récupération des arguments de l'url
$page = '';
if(isset($_GET['page'])) {
	$page = $_GET['page'];
}
$id = '';
if(isset($_GET['id'])) {
	if(!is_numeric($_GET['id'])) {
		setMessage('Erreur : arguments erronés', 'error');
	}
	else {
		$id = $_GET['id'];
	}
}

// Le résumé du panier étant affiché sur toutes les pages, on inclus le fichier ci-dessous, peu importe la page demandée
require('process/panier.php');

// la variable page (recuperee depuis l'url) permet de definir la page sur laquelle on se trouve
switch($page) {
	case "catalogue" :
		if(!$id) {
			$goto_homepage = true;
			setMessage("La catégorie sélectionnée n'existe pas, vous avez été redirigé vers la page d'accueil.", 'error');
			break;
		}
		require('process/catalogue.php');
		$tpl_file = 'catalogue';
		break;
	case "produit":
		if(!$id) {
			$goto_homepage = true;
			setMessage("Ce produit n'existe pas, vous avez été redirigé vers la page d'accueil.", 'error');
			break;
		}
		require('process/produit.php');
		$tpl_file = 'produit';
		break;
	case "panier":
		$tpl_file = 'panier';
		break;
	case "mentionslegales":
		$tpl_file = 'mentionslegales';
		break;
	case "recherche":
		require('process/recherche.php');
		$tpl_file = 'recherche';
		break;
	case "compte":
		require('process/compte.php');
		$tpl_file = 'compte';
		break;
	case "paiement":
		require('process/paiement.php');
	case "": // si pas d'arguments on considère qu'on se trouve sur la page d'accueil
		$goto_homepage = true;
		break;
	default: //pour tous les autres cas -> redirection page d'accueil avec message d'erreur
		$goto_homepage = true;
		setMessage("Cette page n'existe pas, vous avez été redirigé vers la page d'accueil.", 'error');
		break;
}

if($goto_homepage) {
	require('process/home.php');
	$tpl_file = 'home';
}

$smarty->assign('page_title', $page_title . ' | BOOK DIFFERENT | Votre librairie en ligne'); // titre de la page

$smarty->assign('errors', getMessages('error')); //messages d'erreurs
$smarty->assign('messages', getMessages('message')); // messages d'information

$smarty->display('header.tpl');

require('process/sidebar.php');
$smarty->display('sidebar.tpl');

if($tpl_file) {
	$smarty->display($tpl_file . '.tpl');  //on fait appel au fichier template de la page concernée	
}

$smarty->display('footer.tpl');
?>
